package top.catblog.面向对象;

/**
 * @Author: Xiaojie Bi
 * @Date: 2021/4/19 9:35 下午
 */

/**
 * 内部类：一个类定义在另外的一个类的内部。
 */
public class InnerClass {
    public static void main(String[] args) {
        Outer outer = new Outer();
        outer.method();
    }
}

class Outer{
    int x = 3;
    void method(){
        Inner in = new Inner();
        in.function();
    }

     private class Inner{
         // 为什么内部类可以直接访问外部类中的内容。
        int x = 4;
        void function(){
            int x = 6;
            System.out.println("访问局部变量 :"+x);   // 访问局部变量
            System.out.println("访问内部类的实例域"+this.x); // 访问内部类的实例域
            System.out.println("访问外部类的内容"+Outer.this.x); // 访问外部类的内容
        }
    }
}
